package main

import "fmt"

func main() {
	a:=[3] byte{1,2,3} // 长度为32的数组，每个元素为一个字节
	b:=[2] struct { x, y int32 }{}// 复杂类型数组
	c:=[1000]*float64{} // 指针数组
	d:=[3][5]int{} // 二维数组
	e:=[2][2][2]float64{} // 等同于[2]([2]([2]float64))
	println(len(a))
	println(len(b))
	println(len(c))
	println(len(d))
	println(len(e))
	for i := 0; i < len(a); i++ {
		fmt.Println("Element", i, "of array is", a[i])
	}
	// 数组下标，对应值
	for i, v := range a {
		fmt.Println("Array element[", i, "]=", v)
	}
}

/*
数组的长度在定义之后无法再次修改；数组是值类型，
每次传递都将产生一份副本
*/
func modify(array [10]int) {
	array[0] = 10 // 试图修改数组的第一个元素
	fmt.Println("In modify(), array values:", array)
}
